Page({
  /**
   * 页面的初始数据
   */
  data: {
    movies: [], //用于保存当前电影列表
    cid: "1", //用于保存当前选中的类别id
    cityName:"未选择", //存储城市信息
  },
  // 封装请求 loadMovies
  loadMovies(cid, offset) {
    return new Promise((resolve, reject) => {
      // 请求响应之前，弹出等待框
      wx.showLoading({
        title: '加载中....',
        mask: true,
      })
      // 封装的业务代码。请求数据
      wx.request({
        url: 'https://api.tedu.cn/index.php',
        method: "GET",
        data: {
          cid,
          offset
        },
        success: (res) => {
          resolve(res.data) //成功返回请求回来的数据
          // 响应回来之后关闭等待框
          wx.hideLoading()
        },
        fail: (err) => {
          reject(err) //请求错误返回的错误信息
        }
      })
    })
  },
  // 点击顶部导航调用函数获取数据
  tapNav(event) {
    let cid = event.target.dataset.id
    // 当前选中的类别id
    this.setData({
      cid
    })
    // 先查一下，缓存中有没有存过，有就直接用，没有再发请求
    wx.getStorage({
      key: cid,
      success: (res) => {
        this.setData({
          movies: res.data
        })
      },
      fail: (err) => {
        this.loadMovies(cid, 0).then(data => {
          this.setData({
            movies: data,
          })
          // 将查询到的数据存入缓存
          wx.setStorage({
            key: cid,
            data: data
          })
        })
      }
    })
  },
 // 加载定位城市
 getLocCity() {
  let QQMapWX = require("../../libs/qqmap-wx-jssdk")
  let qqmapsdk = new QQMapWX({
    key: '6X7BZ-L7WLG-K3JQ2-IB63I-3UICZ-LJFWV'
  })
  qqmapsdk.reverseGeocoder({
    success:(res)=>{
      let city = res.result.address_component.city
      this.setData({
        cityName:city
      })
      getApp().globalData.cityName=city
     
    },
    fail:(err)=>{
      console.warn("解析失败",err)
    }
  })
},


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    this.loadMovies(1, 0).then(data => {
      // data就是请求返回回来的电影列表
      this.setData({
        movies: data
      })
    }).catch(err => {
      console.warn(err);
    })
    // 加载当前定位城市
    this.getLocCity()
  },
 
  // 监听触底事件的钩子方法，触底自动调用
  onReachBottom() {
    let cid = this.data.cid //当前类别ID
    let offset = this.data.movies.length //列表长度
    this.loadMovies(cid, offset).then(data => {
      let movies = this.data.movies
      movies.push(...data)
      this.setData({
        movies
      })
    }).catch(err => {
      console.warn(err);
    })
  },
  // 下拉刷新被触发时执行
  onPullDownRefresh() {
    // 发送新的请求，加载当前类别的首页数据，更新列表并更新缓存
    this.loadMovies(this.data.cid, 0).then(movies => {
      this.setData({
        movies
      })
      // 更新缓存
      wx.setStorage({
        key: this.data.cid,
        data: movies
      })
      // 取消下拉刷新的动画
      wx.stopPullDownRefresh()
    })
  },
  onShow(){
    let cityName=getApp().globalData.cityName
    this.setData({
      cityName
    })
  }



})